home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Cream of the Crop 20
/
Cream of the Crop 20 (Terry Blount) (1996).iso
/
bbs
/
qb281cz2.zip
/
STRUCT.ZIP
/
STRUCTUR.DOC
< prev
Wrap
Text File
|
1996-07-16
|
16KB
|
377 lines
QuickBBS Version 2.81 PROTOTYPE Structures Document
===================================================
** This is a work in progress **
Any Assistance is welcomed!
- I would like to see Example files, as well as additional
*COMMENTS* in the STRUCTUR.DOC, as well as the specific
language files.
This file contains all of the data file structures used by the QuickBBS
Version 2 series. These are provided as a reference for utility writers
to develop and test their programs for use with QuickBBS.
All "String[]" type variables are one byte bigger than specified, byte 0
(the first byte) contains the length of the string. The remaining of
the string should be ignored, as it is not padded with nulls.
Turbo Pascal Variable Type C Language Var Type Length
===============================================================
Byte | Char | 1 byte
Char | Char | 1 byte
Integer | Int | 2 bytes
Word | Unsigned Int | 2 bytes
LongInt | Long | 4 bytes
Real | [ None ] | 6 bytes
===============================================================
PowerBasic Notes: (From James GoldBloom)
So, if you see: variable as string[40]
In BASIC, at least, this would translate as:
TYPE Test
variableLEN as string * 1 'add this in to account for pascal's method
variable as string * 40 'max length of variable, null padded
END TYPE
I created a matching variable which stores the length, so that later on
in the program I can easily create the correct string length without padded
nulls, which is a nifty step saved later. I use a function to do this,
so no routines are called, and runs fast as lightning.
So, to convert after reading in that data to your buffer:
FUNCTION convertstr$(a$,b$)
convertstr$=left$(a$,asc(b$))
END FUNCTION
IN the function above, a$ would be "test.variable", and b$ would
be "test.variableLEN", passed to the function as:
convertstr$(test.variable,test.variableLEN)
Note, you could just as easily read in the same data as "var as string * 41"
and later parse the string, so to each his own. You get the idea though.
==========================================================================
Location of Data Files:
Note: These are the Recommended Locations, and not necessarily the
ONLY location that the files can be stored at.
EXECUTABLES Must be on the path or be the current directory.
{opt} 266TO276.EXE
{opt} 275TO276.EXE
{opt} 276TO266.EXE
{opt} ALIASFIX.EXE
{opt} LIMTO280.EXE
MAILSCAN.EXE
MAILTOSS.EXE
MENUEDIT.CFG
MENUEDIT.DAT
MENUEDIT.EXE
{opt} MIXER.COM
MSGPACK.EXE
{opt} OS2MIXER.EXE
QCONFIG.EXE
QCONFIG.OVR
QECHO.EXE
QLINK.EXE
QNODE.EXE
QUICKBBS.EXE
{opt} RA2QUICK.EXE
USEREDIT.EXE
USERPACK.EXE
{opt} USRTO280.EXE
SYSTEM Pointed to by the QUICK environment variable. Contains
*default* configuration files, tosser files.
*.ASW questionaire answer files
AREAS.BBS echomail areas file for tosser
ECHOMAIL.BBS pointers to unscanned echomail
ERRORS.LOG error log
EVENTCFG.DAT BBS event configuration file
FILECFG.DAT BBS file area configuration file
LANGUAGE.DAT BBS language configuration file
LIMITS.DAT BBS user limits file (security level
definitions)
MSGCFG.DAT BBS message area configuration file
NETMAIL.BBS pointers to unscanned netmail
PHONE#.CTL BBS callback verifier phone number translation
& cost file
PHONENUM.CTL BBS phone number "filter" file
PROTOCOL.DAT BBS transfer protocol configuration file
QECHO.CTL tosser config file
QECHO.PWD tosser packet password file (note: at this time
this file is *ignored* unless it is in the
*current* directory when QECHO is run!
QUICKCFG.DAT BBS configuration file
SYSINFO.BBS BBS sysinfo
TIMELOG.BBS BBS usage graph data
TODAY.BBS BBS Today's Callers file
TRASHCAN.CTL BBS user names/aliases filter
USERON.BBS BBS users on all nodes
NODEx Home directory for node X. Contains node specific
config files.
DOOR.SYS drop file for doors
DORINFO1.DEF drop file for doors
EXITINFO.BBS drop file for doors
{opt} FILECFG.DAT BBS file area configuration file
IEMSI.LOG log of IEMSI calls
{opt} LANGUAGE.DAT BBS language configuration file
{opt} MSGCFG.DAT BBS message area configuration file
{opt} QUICKCFG.DAT BBS configuration file
SYSTEM.LOG log for this node
TIMELOG.BBS usage graph for node
LANGUAGE Each language can have it's own set of directories, as
well as a path to its language file.
DISPLAY This holds the *.ASC, *.ANS, & *.RIP files
MENUS This holds the *.MNU files
QUESTION This holds the *.Q-A files
MESSAGES This contains the message base and user files.
ALIAS.BBS User aliases
COMBINED.BBS User selections for combined read
LASTREAD.BBS Extended lastread pointers
MSGHDR.BBS
MSGIDX.BBS
MSGINFO.BBS
MSGTOIDX.BBS
MSGTXT.BBS
USERIDX.BBS Index to user file
USERS.BBS User file
NODELIST This contains the raw nodelist(s), as well as related files.
NODECOST.CTL Cost table for QuickBBS netmail charges
NODEIDX.DAT QuickBBS index to raw nodelist(s)
NODEINC.DAT QuickBBS list of raw nodelist(s)
NODELIST.182 Raw nodelist
NETMAIL Contains Fido format *.MSG files
==========================================================================
Break down of the Structures.
UserRecord = record { USERS.BBS or USERS.DAT }
Name : String[35];
City : String[25];
ReservedZero: Byte;
Language : Byte;
PwdCrc : Longint;
PwdChangeDate,
ExpireDate : Word;
$IFDEF GOLDBASE}
HighMsgRead : LongInt;
{$ELSE}
UnusedSpace : LongInt;
{$ENDIF}
Attrib2 : Byte;
ExtraSpace : Byte;
DataPhone,
HomePhone : String[12];
LastTime : String[5];
LastDate : String[8];
Attrib : Byte;
Flags : FlagType;
Credit,
Pending,
{$IFDEF GOLDBASE}
TimesPosted : Word;
ObsoleteField,
{$ELSE}
TimesPosted,
HighMsgRead,
{$ENDIF}
SecLvl,
Times,
Ups,
Downs,
UpK,
DownK : Word;
TodayK : Integer;
Elapsed,
Len : Integer;
CombinedPtr : Word;
AliasPtr : Word;
Birthday : Longint;
end;
(* USERS.BBS or USERS.DAT
Field Description
-----------------------------------------------------------------
Name : Name of user.
City : Location of user.
ReservedZero : Reserved, should always be 0
Language : Record number of user's current language